Skip to content

feat(hive): Restore the Thrift methods removed by HIVE-26537 for 4.2.0 - #1636

Merged
NickLarsenNZ merged 3 commits into
mainfrom
feat/hive-restore-thrift-methods
Sep 22, 2026
Merged

NickLarsenNZ merged 3 commits into
mainfrom
feat/hive-restore-thrift-methods

Conversation

@lfrancke

@lfrancke lfrancke commented Sep 14, 2026

Copy link
Copy Markdown
Member

Description

Hive 4.0.1 removed get_table and get_table_objects_by_name from the metastore Thrift interface. Any client built against a Hive 2.3 metastore client still calls them, and that is what Spark bundles: 2.3.9 in Spark 3.5, 2.3.10 in Spark 4.0 through 4.2. Iceberg's HiveCatalog reaches the metastore through IMetaStoreClient and therefore uses whichever client Spark supplies, so an Iceberg job against a Hive 4.0.1 or newer metastore fails.

This restores the methods as they were in Hive 4.0.0.

This also fixes a related problem: We set the version to build to include the -stackable postfix. And we'd expect Maven to use those artifacts it builds in the same build process. Well...it didn't because Hive has - in some places - hardcoded the wrong version which means that Hive would not actually use the things we build but instead downloads the dependencies from Maven Central. This fixes that as well.

I ran the Hive kuttl test against this and they all succeeded. That doesn't say much because they don't test the Iceberg behavior which is why there is another PR for hive-operator upcoming that adds a test there.

Definition of Done Checklist

Note

Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant.

Please make sure all these things are done and tick the boxes

  • Changes are OpenShift compatible
  • All added packages (via microdnf or otherwise) have a comment on why they are added
  • Things not downloaded from Red Hat repositories should be mirrored in the Stackable repository and downloaded from there
  • All packages should have (if available) signatures/hashes verified
  • Add an entry to the CHANGELOG.md file
  • Integration tests ran successfully
TIP: Running integration tests with a new product image

The image can be built and uploaded to the kind cluster with the following commands:

boil build <IMAGE> --image-version <RELEASE_VERSION> --strip-architecture --load
kind load docker-image <MANIFEST_URI> --name=<name-of-your-test-cluster>

See the output of boil to retrieve the image manifest URI for <MANIFEST_URI>.

@lfrancke
lfrancke force-pushed the feat/hive-restore-thrift-methods branch from b2aed36 to 2ac61fe Compare September 14, 2026 11:16
@lfrancke lfrancke self-assigned this Sep 14, 2026
@lfrancke
lfrancke marked this pull request as ready for review September 14, 2026 11:19
@lfrancke lfrancke moved this to Development: Waiting for Review in Stackable Engineering Sep 14, 2026
@lfrancke lfrancke moved this from Development: Waiting for Review to Development: In Progress in Stackable Engineering Sep 14, 2026
Hive 4.0.1 removed get_table and get_table_objects_by_name from the metastore Thrift
interface. Any client built against a Hive 2.3 metastore client still calls them, and that
is what Spark bundles: 2.3.9 in Spark 3.5, 2.3.10 in Spark 4.0 through 4.2. Iceberg's
HiveCatalog reaches the metastore through IMetaStoreClient and therefore uses whichever
client Spark supplies, so an Iceberg job against a Hive 4.0.1 or newer metastore fails.

This restores the methods as they were in Hive 4.0.0.
@lfrancke
lfrancke force-pushed the feat/hive-restore-thrift-methods branch from 2ac61fe to 339a2e8 Compare September 14, 2026 11:47
@lfrancke
lfrancke added this pull request to stack #1638 September 14, 2026 12:23
@lfrancke lfrancke moved this from Development: In Progress to Development: Waiting for Review in Stackable Engineering Sep 14, 2026
@NickLarsenNZ NickLarsenNZ moved this from Development: Waiting for Review to Development: In Review in Stackable Engineering Sep 18, 2026
@NickLarsenNZ
NickLarsenNZ self-requested a review September 18, 2026 06:19
NickLarsenNZ
NickLarsenNZ previously approved these changes Sep 18, 2026

@NickLarsenNZ NickLarsenNZ left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment thread hive/Dockerfile
#1638, #1641 and #1664 landed on main and appended to the same Fixed section and
link-definition block this branch adds to. Merged rather than rebased so the
reviewed commit stays untouched and the PR gains a commit rather than a rewrite.
The resolution is mechanical: both sides' entries kept, link definitions sorted.
@lfrancke

Copy link
Copy Markdown
Member Author

Had to fix the changelog conflict.

@NickLarsenNZ NickLarsenNZ left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@NickLarsenNZ
NickLarsenNZ added this pull request to the merge queue Sep 22, 2026
Merged via the queue into main with commit 1dbb9a2 Sep 22, 2026
3 checks passed
@NickLarsenNZ
NickLarsenNZ deleted the feat/hive-restore-thrift-methods branch September 22, 2026 07:52
@NickLarsenNZ NickLarsenNZ moved this from Development: In Review to Development: Done in Stackable Engineering Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Development: Done

Development

Successfully merging this pull request may close these issues.

2 participants